package cn.com.yiqi.wsc.service.org;

import cn.com.yiqi.wsc.Ro.OrgVO;
import cn.com.yiqi.wsc.common.Result;
import cn.com.yiqi.wsc.dao.org.criteria.AdminOrgCriteria;
import cn.com.yiqi.wsc.entity.check.Check;
import cn.com.yiqi.wsc.entity.org.OrgEntity;
import cn.com.yiqi.wsc.entity.org.OrgExtendEntity;
import cn.com.yiqi.wsc.entity.org.OrgLinkEntity;
import cn.com.yiqi.wsc.service.user.dataobject.UserDO;

import java.util.List;

/**
 * @author 何刚
 * @ClassName: ${class}
 * @Description: TODO
 * @date 2017/2/24
 */
public interface OrgService {


    /**
     * 管理平台查询商家列表
     *
     * @return
     */
    Result adminOrgInfoList(AdminOrgCriteria criteria);

    /**
     * 添加记录
     *
     * @param entity
     * @return
     */
    Result insert(OrgEntity entity, OrgExtendEntity orgExtends, List<OrgLinkEntity> orgLinkList, Integer userId);

    /**
     * 修改记录
     *
     * @param entity
     * @return
     */
    Result update(OrgEntity entity, Integer userId);

    /**
     * 获取详情
     *
     * @return
     */
    Result detail(Integer orgId);


    /**
     * 删除
     *
     * @return
     */
    Result delete(Integer orgId);


    /**
     * 添加营业信息
     *
     * @param extendEntity
     * @return
     */
    Result insertExtend(OrgExtendEntity extendEntity);


    /**
     * 修改营业信息
     *
     * @param extendEntity
     * @return
     */
    Result updateExtend(OrgExtendEntity extendEntity, Integer userId);

    /**
     * @param orgId
     * @return
     */
    Result getDetailExtendByOrgId(Integer orgId);


    /**
     * 根据OrgId获取联系人列表
     *
     * @param orgId
     * @return
     */
    Result getOrgLinkListByOrgId(Integer orgId);


    /**
     * 添加联系人
     *
     * @param entity
     * @return
     */
    Result insertLink(OrgLinkEntity entity, Integer userId);

    /**
     * 修改联系人
     *
     * @param entity
     * @return
     */
    Result updateLink(OrgLinkEntity entity, Integer userId);

    /**
     * 删除联系人
     *
     * @param orgLinkEntity
     * @return
     */
    Result deleteLink(OrgLinkEntity orgLinkEntity);

    /**
     * 获取商家联系人
     *
     * @param criteria
     * @return
     */
    Result getUserByOrgId(AdminOrgCriteria criteria);


    /**
     * @param userDO
     * @return
     */
    Result addAccount(UserDO userDO, Integer userId);

    /**
     * 获得一条商家信息
     *
     * @param orgEntity
     * @return
     */
    Result selectOrgById(OrgEntity orgEntity);

    /**
     * 更新商家信息
     *
     * @param entity
     * @param orgExtends
     * @param orgLink
     * @param userId
     * @return
     */
    Result updateOrg(OrgEntity entity, OrgExtendEntity orgExtends, OrgLinkEntity orgLink, Integer userId);


    /**
     * 根据名称查询商家
     *
     * @param name
     * @return
     */
    Result<List<OrgVO>> listOrgNameAndId(String name);

    /**
     * 审核
     * @param check
     */
    Result check(Check check);
}
